package com.tedu.day02.oop;

/**
 * 继承关系----多态性
 * 作用：父子级关系 实现方法互通（重写）
 */
class A1{
    public void tell1(){
        System.out.println("A--- 你好你好我是tell1");
    }
    public void tell2(){
        System.out.println("A--- 您好我是tell1");
    }
}
class B1 extends A1{
    public void tell2(){
        System.out.println("B---你好我是 tell2");
    }
    public void tell3(){
        System.out.println("B---你好我是 tell3");
    }
}





public class 多态 {
    public static void main(String[] args) {
        //创建B1对象---创建1个对象   子类[不存在多态，没有造型]
       /* B1 b=new B1();
        A1 a=b; //子类交给父类保存  向上造型
        //实现方法互通 调用父类与子类的方法
        a.tell1(); //父类中的方法
        a.tell2(); //重写 方法之间的互通*/


        //向下造型：实现方法互通，调用父类与子类方法
        //①向上造型一次  父类的引用指向子类的对象
        A1 a=new B1();
        //②子类接收向上造型的引用 并且强转
        B1 b=(B1)a;
        b.tell1(); //父类的方法
        b.tell2(); //重写父类的方法
        b.tell3(); //子类的方法



    }

}
